package ar.fiuba.tp7552.buildadmin.service;

import java.util.Collection;

import org.springframework.security.access.prepost.PreAuthorize;

import ar.fiuba.tp7552.buildadmin.model.BusinessException;
import ar.fiuba.tp7552.buildadmin.model.builds.Edificio;
import ar.fiuba.tp7552.buildadmin.model.builds.Propiedad;
import ar.fiuba.tp7552.buildadmin.model.builds.PropiedadCriteria;
import ar.fiuba.tp7552.buildadmin.model.builds.Responsable;

public interface PropiedadService {

	@PreAuthorize("hasAnyRole('ROLE_ADMIN','RESP_EDIFICIOS')")
	public void createPropiedad(Propiedad propiedad)throws BusinessException;
	
//	@PreAuthorize("hasPermission(#id, 'ar.fiuba.tp7552.buildadmin.model.builds.Propiedad', 'admin')")
	public Propiedad get(Long id);
	
	@PreAuthorize("hasRole('ROLE_ADMIN')")
	public void delete(Propiedad propiedad);
	
	public Collection<Propiedad> getAll();
	public Collection<Propiedad> getAll(Edificio edificio);
	
//	@PreAuthorize("hasPermission(#propiedad.tipo.edificio, 'admin')")
	public void update(Propiedad propiedad);

	
	public Collection<Propiedad> find(PropiedadCriteria criteria);
	

	public Collection<Propiedad> findPropiedades(Edificio edificio,Responsable responsable);
}